Adaptive streaming based on HyperText Transfer Protocol (HTTP) has become a popular approach for delivering multimedia content over the Internet. Typical streaming implementations use a “client-controlled” methodology in which the client requests media segments from the server at an appropriate time, wherein data transfer takes place over HTTP, which media segments are processed and rendered by the client. Broadly, these technologies operate by breaking the content (live, on-demand, time-shifted content, etc.) into a sequence of small HTTP-based file segments, each segment containing a short interval of playback time of content that is potentially many hours in duration, such as a movie or the live broadcast of a sports event, for instance. The content is made available at a variety of different bitrates, i.e., alternative segments encoded at different bitrates covering aligned short intervals of play back time are made available. While the content is being played back by an adaptive streaming client or application, the client automatically selects from the alternative bitrates the next segment to download and play back based on current network conditions. Typically, the client selects the segment with the highest bit rate possible that can be downloaded in time for play back without causing stalls or re-buffering events in the playback. Thus, an adaptive streaming client can seamlessly adapt to changing network conditions, and provide high quality play back with fewer stalls or re-buffering events.
Although the ABR technologies have made several strides in the recent years, many lacunae continue to exist, e.g., especially in terms of the ever-increasing need for better storage management for media content.